![]() Computergestützte Entwurfs-Systeme und -Verfahren mit reduzierter Speicherverwendung
专利摘要:
Verfahren,Systeme und Softwareprodukte analysieren einen Schaltungsentwurfmit reduzierter Speicherverwendung. Zugriff auf zumindest einen Blockdes Schaltungsentwurfs wird erfaßt. Wenn der eine Block nichtin ein Schaltungsmodell eines Computerspeichers geladen ist, wirdeine Bestimmung durchgeführt,ob ein Laden des einen Blocks in das Schaltungsmodell eine vordefinierteMaximalverwendung des Computerspeichers überschreiten würde. Wenndas Laden des einen Blocks in das Schaltungsmodell die vordefinierteMaximalverwendung überschreitenwürde,werden ein oder mehrere Blöckeaus dem Schaltungsmodell entladen und der eine Block wird in dasSchaltungsmodell geladen. Wenn das Laden des einen Blocks in dasSchaltungsmodell die vordefinierte Maximalverwendung nicht überschreitenwürde,wird der eine Block in das Schaltungsmodell geladen. 公开号:DE102004020871A1 申请号:DE102004020871 申请日:2004-04-28 公开日:2005-04-07 发明作者:S. Brandon Evans Keller;George Harold Fort Collins Robbert;Gregory Dennis Fort Collins Rogers 申请人:Hewlett Packard Development Co LP; IPC主号:G06F17-50
专利说明:
[0001] Dasvorliegende Dokument enthältMaterial, das sich auf das Material der mitanhängigen, gemeinsam eingereichtenU.S.-Patentanmeldungen Anwaltsaktenzeichen100111221-1 mit dem Titel System And Method For Determining WireCapacitance For A VLSI Circuit; Anwaltsaktenzeichen 100111227-1mit dem Titel System And Method For Determining Applicable ConfigurationInformation For Use In Analysis Of A Computer Aided Design; Anwaltsaktenzeichen10011228-1 mit dem Titel Systems and Methods Utilizing Fast AnalysisInformation During Detailed Analysis Of A Circuit Design; Anwaltsaktenzeichen100111230-1 mit dem Titel Systems And Methods For Determining ActivityFactors Of A Circuit Design; Anwaltsaktenzeichen 100111232-1 mitdem Titel System And Method For Determining A Highest Level SignalName In A Hierarchical VLSI Design; Anwaltsaktenzeichen 100111233-1mit dem Titel System And Method For Determining Connectivity OfNets In A Hierarchical Circuit Design; Anwaltsaktenzeichen 100111234-1 mitdem Titel System And Method Analyzing Design Elements In ComputerAided Design Tools; Anwaltsaktenzeichen 100111235-1 mit dem TitelSystem And Method For Determining Unmatched Design Elements In AComputer-AutomatedDesign; Anwaltsaktenzeichen 100111238-1 mit dem Titel System And MethodFor Iteratively Traversing A Hierarchical Circuit Design; Anwaltsaktenzeichen100111257-1 mit dem Titel Systems And Methods For Establishing DataModel Consistency Of Computer Aided Design Tools; Anwaltsaktenzeichen100111259-1 mit dem Titel Systems And Methods For Identifying DataSources Associated With A Circuit Design; und Anwaltsaktenzeichen100111260-1 mit dem Titel Systems And Methods For Performing CircuitAnalysis On A Circuit Design bezieht, wobei die Offenbarungen derselbenhierdurch durch Bezugnahme aufgenommen sind. [0002] EinPaket eines elektronischen, computergestützten Entwurfs („E-CAD") wird verwendet,um einen Schaltungsentwurf mit Höchstintegration(„VLSI"; VLSI = Very LargeScale Integration) zu erzeugen. Der VLSI-Schaltungsentwurf bestehtaus einer Netzliste, die elektronische Entwurfselemente (z. B. Kondensatoren,Transistoren, Widerständeetc.) und ihre Verbindbarkeit (z. B. Signalnetze) innerhalb des VLSI-Schaltungsentwurfsidentifiziert. Der VLSI-Schaltungsentwurf ist aus hierarchischenEntwurfsblöckenaufgebaut (ebenfalls bekannt als Zellen), die eine spezifische Funktionalität für den VLSI-Schaltungsentwurfliefern. Solche Entwurfsblöcke können innerhalbdes VLSI-Schaltungsentwurfs oder innerhalb anderer Schaltungsentwürfe wiederverwendetwerden. Entwurfsblöckekönnenaus elektronischen Entwurfselementen, Netzen und anderen Entwurfsblöcken aufgebautsein und könnenein oder mehrere Male wiederverwendet werden. Jede Verwendung einesEntwurfsblocks wird eine „Instanz" genannt. [0003] EinEntwurfstechniker verwendet das E-CAD-Tool bzw. -Werkzeug, um denVLSI-Schaltungsentwurf währendder Entwicklung zu analysieren. Das E-CAD-Tool führt üblicherweise eine Verfolgungdurch Instanzen von Blöckendurch, die in dem VLSI-Schaltungsentwurf verwendet werden, um bestimmteInformationen zusammenzufassen (z. B. Feldeffekttransistorbreite(„FET"-Breite), Drahtkapazität, FET-Kapazität, etc.).Währenddieser Analyse lädtdas E-CAD-Tool üblicherweiseden gesamten VLSI-Schaltungsentwurf in den Speicher. Wenn der VLSI-SchaltungsentwurfMilliarden von Entwurfselementen aufweist, verwendet der Schaltungsentwurf große Beträge diesesSpeichers. In bestimmten Situationen wird das Verarbeiten des Schaltungsentwurfs durchden Betrag an verfügbaremSpeicher eingeschränkt,wodurch die Entwicklung beschränktwird und die Produktion verlangsamt wird. Durchgehend verringerteProduktivitätaufgrund von langen Tech nikentwicklungen verlangsamt den Technikfortschritt undführt zubedeutenden Kosten sowie Geschäftsverlust. [0004] Esist die Aufgabe der vorliegenden Erfindung, ein Verfahren und einSystem zum Analysieren eines Schaltungsentwurfs und ein Softwareprodukt mitverbesserten Charakteristika zu schaffen. [0005] DieseAufgabe wird durch ein Verfahren zum Analysieren eines Schaltungsentwurfsgemäß Anspruch1, ein System zum Analysieren eines Schaltungsentwurfs gemäß Anspruch5 und 11 und ein Softwareprodukt gemäß Anspruch 17 gelöst. [0006] Beieinem Ausführungsbeispielanalysiert ein Verfahren einen Schaltungsentwurf mit reduzierter Speicherverwendung.Zugriff auf zumindest einen Block des Schaltungsentwurfs wird erfaßt. Wennder eine Block nicht in ein Schaltungsmodell eines Computerspeichersgeladen ist, wird eine Bestimmung durchgeführt, ob das Laden des einenBlocks in das Schaltungsmodell eine vordefinierte Maximalverwendungdes Computerspeichers überschreitenwürde. Wenndas Laden des einen Blocks in das Schaltungsmodell die vordefinierteMaximalverwendung überschreitenwürde,werden einer oder mehrere Blöckeaus dem Schaltungsmodell entladen und der eine Block wird in dasSchaltungsmodell geladen. Wenn das Laden des einen Blocks in dasSchaltungsmodell die vordefinierte Maximalverwendung nicht überschreitenwürde,wird der eine Block in das Schaltungsmodell geladen. [0007] Beieinem anderen Ausführungsbeispiel analysiertein System einen Schaltungsentwurf mit reduzierter Speicherverwendung.Ein Computerspeicher speichert ein Schaltungsmodell des Schaltungsentwurfs.Ein Analysetool analysiert den Schaltungsentwurf durch Zugreifenauf einen oder mehrere Blöckedes Schaltungsmodells. Ein Modellverwalter (a) lädt einen oder mehrere Blöcke desSchaltungsentwurfs in das Schaltungsmodell und (b) entlädt einen odermehrere Blöckeaus dem Schaltungsmodell, derart, daß das Schaltungsmodell eine vordefinierte Maximalverwendungdes Computerspeichers nicht überschreitet. [0008] Beieinem anderen Ausführungsbeispiel analysiertein System einen Schaltungsentwurf mit reduzierter Speicherverwendung,das folgende Merkmale aufweist: eine Einrichtung zum Erfassen vonZugriff auf zumindest einen Block des Schaltungsentwurfs; eine Einrichtungzum Bestimmen, ob das Laden des einen Blocks in ein Schaltungsmodell, dasinnerhalb eines Computerspeichers gespeichert ist, eine vorbestimmteMaximalverwendung des Computerspeichers überschreiten würde, wennder eine Block momentan nicht innerhalb des Schaltungsmodells vorliegt;eine Einrichtung zum Entladen von einem oder mehreren Blöcken ausdem Schaltungsmodell und Laden des einen Blocks in das Schaltungsmodell,wenn das Laden des einen Blocks in dem Computerspeicher die vordefinierteMaximalverwendung überschreitenwürde;und eine Einrichtung zum Laden des einen Blocks in das Schaltungsmodell,wenn das Laden des einen Blocks in das Computermodell die vordefinierteMaximalverwendung nicht überschreitenwürde. [0009] Beieinem Ausführungsbeispielweist ein Softwareprodukt Anweisungen auf, die auf einem computerlesbarenMedium gespeichert sind, wobei die Anweisungen, wenn sie durch einenComputer ausgeführtwerden, Schritte zum Analysieren eines Schaltungsentwurfs mit reduzierterSpeicherverwendung durchführen,die folgende umfassen: Anweisungen zum Erfassen von Zugriffauf zumindest einen Block des Schaltungsentwurfs; Anweisungen zumAufzeichnen des Zugriffs, wenn der eine Block in ein Schaltungsmodellseines Computerspeichers geladen wird; Anweisungen zum Bestimmen, obdas Laden des einen Blocks in das Schaltungsmodell eine vorbestimmteMaximalverwendung des Computerspeichers überschreiten würde, wennder eine Block nicht in das Schaltungsmodell geladen wird; Anweisungenzum Entladen von einem oder mehreren Blöcken aus dem Schaltungsmodellund Laden des einen Blocks in das Schaltungsmodell, wenn das Ladendes einen Blocks in das Schaltungsmodell die vorbestimmte Maximalverwendung überschreitenwürde;und Anweisungen zum Laden des einen Blocks in das Schaltungsmodell,wenn das Laden des einen Blocks in das Schaltungsmodell die vordefinierteMaximalverwendung nicht überschreitenwürde. [0010] BevorzugteAusführungsbeispieleder vorliegenden Erfindung werden nachfolgend Bezug nehmend aufdie beiliegenden Zeichnungen nähererläutert.Es zeigen [0011] 1 ein exemplarisches schematischesDiagramm eines hierarchischen Schaltungsentwurfs; [0012] 2 ein Blockdiagramm, dasein computergestütztesEntwurfssystem mit reduzierter Speicherverwendung darstellt; [0013] 3 ein exemplarisches schematischesDiagramm, das fünfEntwurfsblöckedarstellt; [0014] 4 exemplarische hierarchischeInstanzen der Entwurfsblöckeaus 3; [0015] 5 einen exemplarischen Datenfluß während einerAnalyse eines Schaltungsentwurfs durch ein computergestütztes Entwurfssystemmit reduzierter Speicherverwendung; [0016] 6 drei chronologische Schnappschüsse einesModellverwalters; [0017] 7 ein Flußdiagramm,das einen Prozeß zumAktualisieren eines Schaltungsmodells darstellt, um eine Speicherverwendungzu reduzieren; und [0018] 8 ein Verfahren zum Analysiereneines Schaltungsentwurfs mit reduzierter Speicherverwendung. [0019] EinSignalnetz ist ein einzelner elektrischer Weg in einem Schaltungsentwurf,der dieselben elektrischen Charakteristika an allen seinen Punktenaufweist. Eine Sammlung von Drähten,die dasselbe Signal zwischen Entwurfselementen trägt, istein Signalnetz. Wenn die Entwurfselemente ermöglichen, daß das Signal ungeändert durchläuft (wieim Fall eines Anschlusses), dann wird das Signalnetz an nachfolgendangeschlossenen Drähtenfortgesetzt. Wenn das Entwurfselement jedoch das Signal modifiziert (wiein dem Fall eines Transistors oder Logikgatters), dann endet dasSignalnetz an dem Entwurfselement und ein neues Signalnetz beginntan der anderen Seite. Die Konnektivität in einem Schaltungsentwurf wird üblicherweiseunter Verwendung einer Netzliste spezifiziert, die die spezifischenNetze anzeigt, die die verschiedenen Entwurfselemente verbinden. [0020] EinSignalnetz kann in Signalnetz-„Stücke" unterteilt sein,wobei jedes derselben Teil eines Signalnamens höchster Ebene („HLSN"; HLSN = HighestLevel Signal Name) ist. Ein HLSN ist der eindeutige Signalname,der eine Sammlung von Signalnetzen oder „hierarchischen Signalnetz-Stücken" identifiziert, diedie kleinen Stückevon zwischengeschaltetem Draht (Signalnetze) in jedem hierarchischenEntwurfsblock eines Schaltungsentwurfs sind. [0021] Einebedeutende Charakteristik der VLSI und anderer Typen von Schaltungsentwürfen ist,daß sieauf der hierarchischen Beschreibung basieren. Ein primärer Grundzum Verwenden der hierarchischen Beschreibung ist das Verdeckender großen Detailbeträge in einemEntwurf. Durch Reduzieren der ablenkenden Details auf ein einzelnesObjekt, das niedriger in der Hierarchie ist, können viele E-CAD-Operationenbedeutend vereinfacht werden. Simulation, Verifikation, Entwurfsregelprüfung und Layouteinschränkungenkönnenalle von der hierarchischen Darstellung profitieren, die sie rechen technischbesser bearbeitbar macht. Da viele Schaltungsentwürfe zu kompliziertsind, um einfach in ihrer Gesamtheit betrachtet zu werden, wirdein vollständigerEntwurf häufigals eine Sammlung von Entwurfselementaggregaten betrachtet, dieweiter in Teilaggregate auf eine rekursive und hierarchische Weise unterteiltsind. Bei einem VLSI-Schaltungsentwurf werdendiese Aggregate häufigals Entwurfsblöcke (oderZellen) bezeichnet. Die Verwendung eines Entwurfsblocks auf einergegebenen Ebene der Hierarchie wird eine „Instanz" genannt. Jeder Entwurfsblock weisteines oder mehrere „Tore" auf, wobei jedesderselben einen Verbindungspunkt zwischen einem Signalnetz innerhalbdes Entwurfsblocks und einem Signalnetz außerhalb des Entwurfblocks liefert. [0022] 1 zeigt auf darstellendeWeise einen hierarchischen Schaltungsentwurf 10. Der Schaltungsentwurf 10 weisteine Blockinstanz 12 auf, die zwei Blockinstanzen 14 und 14' eines Schaltungsentwurfsumfaßt.Die Blockinstanz 14 weist vier Tore 28, 30, 32 und 34 aufund umfaßtbei diesem Beispiel einen p-Typ-Feldeffekttransistor („FET") 16 undeinen n-Typ-FET 18, die verbunden sind, um einen Inverter zubilden. Die Blockinstanz 14 weist ferner vier Signalnetze 20, 22, 24 und 26 auf;das Signalnetz 20 ist mit dem Tor 32 verbunden;das Signalnetz 22 ist mit dem Tor 34 verbunden;das Signalnetz 24 ist mit dem Tor 28 verbundenund das Signalnetz 26 ist mit dem Tor 30 verbunden.Die Blockinstanz 14' istauf ähnlicheWeise mit FETs 16' und 18', mit Signalnetzen 20', 22', 24' und 26' und Toren 28', 30', 32' und 34' gezeigt. [0023] Umdie exemplarische Nomenklatur darzustellen, die beim Analysierender Blockinstanz 12 verwendet wird, ist die Blockinstanz 12 mitfünf Signalnetzengezeigt: Eingangsnetz 36, Durchlaufnetz 38, Ausgangsnetz 40,VDD-Netz 42 und GND-Netz 44. DieSignalnetze 20 und 36 sind mit dem Tor 32 verbundenund bilden hierarchische Signalnetzstücke, identifiziert durch dasHLSN-„Eingangsnetz". Die Signalnetze 22, 38 und 20' sind durchTore 34 und 32' verbundenund bilden hierarchische Signalnetzstücke, identifiziert durch dasHLSN-„Durchlaufnetz". Die Signalnetze 24, 42 und 24' sind durchdie Tore 28 und 28' verbundenund bilden hierarchische Signalnetzstücke, identifiziert durch dasHLSN-„VDD-Netz". Die Signalnetze 26, 44 und 26' sind durchTore 30 und 30' verbundenund bilden hierarchische Signalnetzstücke, identifiziert durch das HLSN-„GND-Netz". Die Signalnetze 22' und 40 sind mitdem Tor 34' verbundenund bilden hierarchische Signalnetzstücke, identifiziert durch dasHLSN-„Ausgangsnetz". Die Blockinstanz 12 umfaßt fernerTore 46, 48, 50 und 52, dieinterne Signalnetze 36, 42, 40 und 44 mitSignalnetzen außerhalbder Blockinstanz 12 verbinden. [0024] 2 ist ein Blockdiagramm,das ein computergestütztesEntwurfssystem 100 mit reduzierter Speicherverwendung darstellt.Das System 100 weist einen Computer 102 mit einemComputerspeicher 104, einem Prozessor 106, einerSpeicherungseinheit 108 und einer Benutzerschnittstelle 110 auf. DieSpeicherungseinheit 108 kann z. B. ein Plattenlaufwerkzum Speichern von Programmen und Daten des Computers 102 sein.Die Speicherungseinheit 108 ist darstellend derart gezeigt,daß sieein E-CAD-Tool 114, ein Analysetool 120 und einen Schaltungsentwurf 116 speichert.Der Schaltungsentwurf 116 ist z. B. ein Schaltungsentwurf,erzeugt durch das E-CAD-Tool 114. Der Schaltungsentwurf 116 umfaßt eineNetzliste 118, die Signalnetze definiert, die verschiedeneEntwurfselemente des Schaltungsentwurfs 116 verbinden.Das E-CAD-Tool 114 umfaßt einen Modellverwalter 122,der wirksam ist, um die Speicherverwendung des E-CAD-Tools 114 durchTeilladen eines Schaltungsentwurfs 116 in ein Schaltungsmodell 124 für das Analysetool 120 zureduzieren. [0025] Genauergesagt lädtder Prozessor 106 das E-CAD-Tool 114, einschließlich demModellverwalter 122 und dem Analysetool 120 vonder Speicherungseinheit 108 in den Computerspeicher 104,derart, daß dasE-CAD-Tool 114 und der Modellverwalter 122 durchden Prozessor 106 ausführbarsind. Sobald es in den Computerspeicher 104 geladen ist,bearbeitet ein Entwurfstechniker das E-CAD-Tool 114, umden Schaltungsentwurf 116 zu verarbeiten und zu analysieren.Währendder Analyse des Schaltungsentwurfs 116 durch das Analysetool 120 wirktder Modellverwalter 122, um die Speicherverwendung durch dasAnalysetool 120 zu reduzieren; der Modellverwalter 122 lädt Blöcke desSchaltungsentwurfs 116 in das Schaltungsmodell 124 (innerhalbdem Computerspeicher 104), wie durch das Analysetool 120 erforderlichist, und entlädtBlöckeaus dem Computerspeicher 104 in die Speicherungseinheit 103,wenn sie fürdas Analysetool 120 unnötigsind. [0026] Beider darstellenden Operation ist die Benutzerschnittstelle 110 miteinem Anschluß 112 (z.B. einer Tastatur) außerhalbdes Computers 102 verbunden. Durch den Anschluß 112 unddie Benutzerschnittstelle 110 tritt der Entwurfstechnikermit dem E-CAD-Tool 114 und dem Analysetool 120 inWechselwirkung. Bei einem Beispiel weist der Entwurfstechniker dasE-CAD-Tool 114 an, den Schaltungsentwurf 116 unterVerwendung des Analysetools 120 zu analysieren. Der Modellverwalter 122 seinerseits verwaltet,welche Blöckeinnerhalb des Computerspeichers 104 vorhanden sind, wenndas Analysetool 120 den Schaltungsentwurf 116 analysiert. [0027] Einexemplarischer Schaltungsentwurf 116' wird in Verbindung mit 3 und 4 gezeigt und beschrieben. Genauer gesagtzeigt 3 fünf Entwurfsblöcke, A,B, C, D und E eines hierarchischen Schaltungsentwurfs 116', der z. B.den Schaltungsentwurf 116 aus 1 darstellen kann. Ähnlich zu Block 12, 1, der Blockinstanzen 14 und 14' umfaßt, umfaßt der EntwurfsblockA EntwurfsblöckeB und C; der Entwurfsblock B umfaßt den Entwurfsblock C; undder Entwurfsblock C umfaßtdie EntwurfsblöckeD und E. Die EntwurfsblöckeD und E umfassen keine anderen Entwurfsblöcke. Entwurfselemente sindnicht innerhalb der EntwurfsblöckeA, B, C, D und E des Beispiels gezeigt, für eine klare Dar stellung. EinEntwurfstechniker definiert Entwurfsblöcke A – E vor einer Instanzierunginnerhalb des Schaltungsentwurfs 116'. [0028] 4 ist ein Blockdiagramm,das exemplarische hierarchische Instanzen von Entwurfsblöcken A,B, C, D und E des Schaltungsentwurfs 116' darstellt. Der Entwurfsblock Aist der „Blockoberster Ebene" desSchaltungsentwurfs 116',und wird als Blockinstanz „A1" instanziert, wasanzeigt, daß erdie erste Instanz von Block A ist. Da der Entwurfsblock A die Entwurfsblöcke B undC umfaßt,werden die EntwurfsblöckeB und C als Blockinstanzen B1 und C1 instanziert, wie gezeigt ist.Der Entwurfsblock B umfaßtden Entwurfsblock C und somit wird eine zweite Instanzierung desEntwurfsblocks C als Blockinstanz C2 identifiziert. Der EntwurfsblockC umfaßtdie EntwurfsblöckeD und E; eine erste Instanzierung der Entwurfsblöcke D und E ist somit als Blockinstanzen D1und E1 gezeigt, die der Blockinstanz C1 zugeordnet sind; zweiteInstanzierungen der Entwurfsblöcke Dund E sind als Blockinstanzen D2 und E2 gezeigt, die der BlockinstanzC2 zugeordnet sind. Dementsprechend weist der Schaltungsentwurf 116' fünf Entwurfsblöcke A, B,C, D und E auf, die jeweils ein oder mehrere Male instanziert werden,und insgesamt acht Instanzierungen, A1, B1, C1, C2, D1, D2, E1 undE2 ergeben. [0029] Durcheine darstellende Operation und unter weiterer Bezugnahme auf 2 weist der Entwurfstechnikerdas Analysetool 120 an, eine Schaltungsanalyse an einemoder mehreren ausgewähltenBlöcken(A – E)des Schaltungsentwurfs 116' durchzuführen. Aufdiese Weise kann der Entwurfstechniker den gesamten Schaltungsentwurf 116' oder nur ausgewählte Blöcke desSchaltungsentwurfs 116' analysieren.Bei einem Beispiel weist der Entwurfstechniker das Analysetool 120 an,Leistungsanforderungen des Schaltungsentwurfs 116' zu bestimmen.Das Analysetool 120 kann z. B. Schaltleistungsanforderungenaller HLSN-Signalnetze des Schaltungsentwurfs 116' bestimmen,die hierarchisch den HLSN-Signalnetzen durch ausgewählte Blöcke des Schaltungsentwurfs 116' folgen. [0030] 5 ist ein Blockdiagramm,das einen exemplarischen Datenfluß mit reduzierter Speicherverwendungwährendder Analyse des Schaltungsentwurfs 116' durch das Analysetool 120 darstellt.Bei diesem Beispiel ist die Speicherungseinheit 108 beladenmit einem Schaltungsentwurf 116' aus 4 gezeigt,und der Computerspeicher 104 ist beladen mit dem E-CAD-Tool 114 unddem Schaltungsmodell 124 gezeigt. Das E-CAD-Tool 114 umfaßt einenModellverwalter 122 und ein Analysetool 120. DerModellverwalter 122 weist eine Blockzugriffstabelle 126, umden Zugriff auf Blöckeinnerhalb des Schaltungsmodells 124 aufzuzeichnen, undeine Blockschwelle 128 auf, die eine maximale Anzahl vonBlöckenvordefiniert, die gleichzeitig in das Schaltungsmodell 124 geladenwerden. Die Blockschwelle 128 stellt daher eine vordefinierteMaximalverwendung des Computerspeichers 104 ein; sie kannz. B. durch einen Entwurfstechniker durch die Benutzerschnittstelle 110 eingestelltwerden, 2. Der Modellverwalter 122 verwaltetdas Schaltungsmodell 124 derart, daß einer oder mehrere Abschnittedes Schaltungsentwurfs 116' durchdas Analysetool 120 zugreifbar sind; solche Abschnittewerden fürdas Analysetool 122 zugreifbar gemacht, durch Laden geeigneterEntwurfsblöckeaus der Speicherungseinheit 108 in dem Computerspeicher 104.Bei dem Beispiel, das in 5 gezeigtist, hat das Analysetool 120 Zugriff auf die BlockinstanzenC2, D2 und E2 des Schaltungsmodells 124. Die Blockzugriffstabelle 126 verfolgtsomit den Zugriff auf die BlöckeC2, D2 und E2 des Schaltungsmodells 124 durch das Analysetool 120. DerModellverwalter 122 verwendet ferner Informationen derBlockzugriffstabelle 126, um zu bestimmen, welche Blöcke ausdem Schaltungsmodell 124 in die Speicherungseinheit 108 entladenwerden sollen. [0031] Beieinem Ausführungsbeispielwird fürjeden erfaßtenZugriff auf jeden Block innerhalb des Schaltungsmodells 124 dieZeit des Zugriffs auf jeden Block (z. B. ein Zeitstempel) in derBlockzugriffstabelle 126 gespeichert; die Blockzugriffstabelle 126 zeichnetdadurch die Zeit des letzten Zugriffs auf jeden Block in dem Schaltungsmodell 124 auf.Bei einem anderen Ausführungsbeispielwird fürjeden Block, der in das Schaltungsmodell 124 geladen wird, einZeitstempel in der Blockzugriffstabelle 126 gespeichert,der die Blockladezeit anzeigt, und für jeden erfaßten Zugriffauf die Blöckeinnerhalb des Schaltungsmodells 124 wird ein zugeordneterZählwertin der Blockzugriffstabelle 126 inkrementiert; die Blockzugriffstabelle 126 speichertdadurch die Häufigkeit desZugriffs auf den Block, seit der Block in das Schaltungsmodell 126 geladenwurde. Durchschnittsfachleute auf dem Gebiet werden erkennen, daß alternativeInformationen in der Blockzugriffstabelle 126 gespeichertwerden können,ohne von dem Schutzbereich derselben abzuweichen. [0032] Umdie Verwaltung des Schaltungsmodells 124 durch den Modellverwalter 122 weiterdarzustellen, zeigt 6 dreichronologisch aufgereihte Schnappschüsse (124(A), 124(B), 124(C))des Schaltungsmodells 124. Bei dem Schaltungsmodell 124A sinddie Blockinstanzen C2, D2 und E2 innerhalb des Schaltungsmodells 124 gezeigtund füreinen Zugriff durch das Analysetool 120 verfügbar. Der Modellverwalter 122 bestimmtdann, daß dasAnalysetool 120 einen Zugriff auf die Blockinstanz B1 benötigt. Dader Modellverwalter 122 bereits eine maximale Anzahl vonBlöckenin den Schaltungsentwurf 124 geladen hat, verwendet beidiesem Beispiel der Modellverwalter 122 die Blockzugriffstabelle 126,um zu bestimmen, daß derBlock D2 der zuletzt zugegriffene Block innerhalb des Schaltungsmodells 124 war unddaher vor dem Laden von Block B1 entfernt werden sollte. Das Schaltungsmodell 124B zeigtsomit den Block D2 entfernt aus dem Schaltungsmodell 124.Das Schaltungsmodell 124C stellt auf ähnliche Weise eine dritte Situationdar, nachdem der Modellverwalter 122 den Block B1 aus demSchaltungsentwurf 116' indas Schaltungsmodell 124 lädt. [0033] DerModellverwalter 122 kann eine oder mehrere bekannte Technikenverwenden, um einen oder mehrere Blöcke zu identifizieren, dieaus dem Schaltungsmodell 124 entfernt werden sollen. Zum Beispielkönnendas zuletzt verwendete („LRU"; LRU = Least RecentlyUsed) und das am wenigsten häufig verwendete(„LFU"; LFU = Least FrequentlyUsed) Verfahren durch den Modellverwalter 122 verwendet werden,um die Blöckezu identifizieren, die aus dem Speicher 104 entfernt werdensollen. Bei einem Beispiel speichert der Modellverwalter 122 Blöcke des Schaltungsentwurfs 116 beidem Schaltungsmodell 124 in einem Cache derart, daß das Analysetool 120 diereduzierte Speicherverwendung nicht erkennt. [0034] 7 ist ein Flußdiagramm,das einen Prozeß 700 zumReduzieren der Speicherverwendung beim Analysieren eines Schaltungsentwurfsdarstellt. Bei einem Beispiel wird der Prozeß 700 durch den Modellverwalter 122, 2, implementiert. Bei Schritt 702 erfaßt der Prozeß 700 einenBlockzugriff durch das Analysetool 120. Bei Block 702 erfaßt der Prozeß 700 z.B. einen Zugriff auf den Block (z. B. Block C2), der in das Schaltungsmodell 124 geladen ist,oder eine Anforderung zum Zugreifen auf einen Block (z. B. BlockB1), der nicht in das Schaltungsmodell 124 geladen ist.Schritt 704 ist eine Entscheidung. Wenn der Zugriff aufeinen Block erfolgt, der bereits in das Schaltungsmodell 124 geladenist, fährt derProzeß 700 mitSchritt 716 fort; ansonsten fährt der Prozeß 700 mitSchritt 706 fort. Schritt 706 ist eine Bedingung.Wenn das Schaltungsmodell 124 einen maximalen Betrag vonBlöckenenthält,wie durch die Blockschwelle 128 definiert ist, fährt der Prozeß 700 mitSchritt 708 fort; ansonsten fährt der Prozeß 700 mitSchritt 712 fort. Bei Schritt 708 bestimmt derProzeß 700,welcher Block des Schaltungsmodells 124 entfernt werdensoll, um den Block in das Schaltungsmodell 124 zu laden,der bei Schritt 702 identifiziert wurde. Zum Beispiel verwendetder Modellverwalter bei Schritt 708 die Blockzugriffstabelle 126,wenn Cache-Speicherungstechniken implementiert werden, um den LRU-Blockoder LFU-Block innerhalb des Schaltungsmodells 124 zu identifizieren.Bei Schritt 710 wird der Block, der bei Schritt 708 identifiziertwurde, entfernt, was den verfügbarenSpeicher 104 erhöht,durch Erzeugen von Raum innerhalb des Schaltungsmodells 124.Bei Schritt 712 wird der Block, der bei Schritt 702 identifiziertwurde, von dem Schaltungsentwurf 116 in das Schaltungsmodell 124 geladen.Bei Schritt 714 wird das Schaltungsmodell 124 derartaktualisiert, daß derBlock, der bei Schritt 712 geladen wurde, mit den anderenBlöckenin dem Schaltungsmodell 124 integriert ist. Bei Schritt 716 wirdder Zugriff auf die Blöcke,die bei Schritten 702 und 710 identifiziert werden,in der Blockzugriffstabelle 126 aufgezeichnet. [0035] Fachleuteauf dem Gebiet werden erkennen, daß der Prozeß 700 mit einer ähnlichenFunktion mit neugeordneten oder modifizierten Schritten betriebenwerden kann, ohne von dem Schutzbereich hiervon abzuweichen. [0036] 8 ist ein Flußdiagramm,das einen Prozeß 800 zumAnalysieren eines Schaltungsentwurfs mit reduzierter Speicherverwendungdarstellt. Bei Schritt 802 erfaßt der Prozeß 800 Zugriffauf zumindest einen Block des Schaltungsentwurfs. Bei Schritt 806,wenn der eine Block nicht in das Schaltungsmodell geladen wird,bestimmt der Prozeß 800,ob das Laden des einen Blocks eine vordefinierte Maximalverwendungdes Computerspeichers überschreiten würde. BeiSchritt 808, wenn das Laden des einen Blocks in den Computerspeicherdie vorbestimmte Maximalverwendung überschreiten würde, entlädt der Prozeß 800 einenoder mehrere Blöckeaus dem Schaltungsmodell und lädtden einen Block in das Schaltungsmodell. Bei Schritt 810,wenn das Laden des einen Blocks in den Computerspeicher die vordefinierteMaximalverwendung nicht überschreitenwürde,lädt derProzeß 800 deneinen Block in das Schaltungsmodell. [0037] Nachdem Lesen und dem vollständigenVerstehen der obigen Offenbarung wird ein Durchschnittsfachmannauf dem Gebiet erkennen, daß durchTeilladen des Schaltungsentwurfs 116 in den Speicher dasE-CAD-Tool 114 mit reduzierter Speicherverwendung arbeitet.Dies ermöglicht,daß Schaltungsentwürfe, diegrößer sindals der verfügbareSpeicher, entwickelt werden, und daß unbenutzter Speicher für andereZwecke verwendet wird. [0038] Änderungenkönnenan den obigen Verfahren und Systemen durchgeführt werden, ohne von dem Schutzbereichderselben abzuweichen. Es sollte somit darauf hingewiesen werden,daß derGegenstand, der in der obigen Beschreibung enthalten oder in denbeiliegenden Zeichnungen beschrieben ist, als darstellend und nichtin einem einschränkendenSinn interpretiert werden sollte. Die nachfolgenden Ansprüche sollenalle allgemeinen und spezifischen Merkmale abdecken, die hierinbeschrieben sind, sowie alle Anmerkungen des Schutzbereichs desvorliegenden Verfahrens und Systems, die aus sprachlichen Gründen zwischendieselben fallen könnten.
权利要求:
Claims (22) [1] Verfahren (700, 800) zum Analysiereneines Schaltungsentwurfs (116, 116'), das folgende Schritte aufweist: Erfassen(702, 802) eines Zugriffs auf zumindest einenBlock (A1, B1, C1, C2, D1, D2, E1, E2) des Schaltungsentwurfs; wennder eine Block nicht in ein Schaltungsmodell (124) desComputerspeichers (104) geladen ist, Bestimmen (706, 806),ob das Laden des einen Blocks in das Schaltungsmodell eine vorbestimmteMaximalverwendung (128) des Computerspeichers überschreitenwürde; wenndas Laden (712, 808) des einen Blocks in das Schaltungsmodell(124) die vorbestimmte Maximalverwendung (128) überschreitenwürde,Entladen (710) von einem oder mehreren Blöcken ausdem Schaltungsmodell (124) und Laden (712) deseinen Blocks in das Schaltungsmodell; wenn das Laden (712, 810)des einen Blocks in das Schaltungsmodell (124) die vordefinierteMaximalverwendung (128) nicht überschreiten würde, Laden (712)des einen Blocks in das Schaltungsmodell (124). [2] Verfahren gemäß Anspruch1, das ferner das Aktualisieren (716) einer Blockzugriffstabelle(126) aufweist, um den Zugriff auf den einen Block aufzuzeichnen,wenn der eine Block in das Schaltungsmodell geladen ist; beidem die Schritte des Aktualisierens (716) und Ladens (712, 808, 810)das Aufzeichnen (716) des Zugriffs auf den Block in derBlockzugriffstabelle (126) aufweisen; und bei demder Schritt des Entladens (710, 808) das Verwendender Blockzugriffstabelle (126) aufweist, um zu bestimmen(708), welche Blöckeaus dem Schaltungsmodell (124) entladen werden sollen (710, 808). [3] Verfahren gemäß Anspruch2, bei dem der Schritt des Entladens (710, 808)ferner das Verwenden einer LRU-Cachespeicherungstechnikmit Informationen der Blockzugriffstabelle (126) aufweist,um zu bestimmen (708), welche Blöcke entladen werden sollen. [4] Verfahren gemäß Anspruch2 oder 3, bei dem der Schritt des Entladens (710, 808)ferner das Verwenden einer LFU-Cachespeicherungstechnik mit Informationender Blockzugriffstabelle (126) aufweist, um zu bestimmen(708), welche Blöckeentladen werden sollen. [5] System (100) zum Analysieren eines Schaltungsentwurfs(116, 116'),das folgende Merkmale aufweist: einen Computerspeicher (104)zum Speichern eines Schaltungsmodells (124) des Schaltungsentwurfs (116, 116'); einAnalysetool (120) zum Analysieren des Schaltungsentwurfs(116, 116')durch Zugreifen auf einen oder mehrere Blöcke (A1, B1, C1, C2, D1, D2,E1, E2) des Schaltungsmodells (124); und einen Modellverwalter(122) zum (a) Laden (712, 808, 810)von einem oder mehreren Blöckendes Schaltungsentwurfs (116, 116') in das Schaltungsmodell (124)und (b) Entladen (710) von einem oder mehreren Blöcken ausdem Schaltungsmodell (124), derart, daß das Schaltungsmodell einevorbestimmte Maximalverwendung (128) des Computerspeichers (104)nicht überschreitet. [6] System gemäß Anspruch5, das ferner eine Speicherungseinheit (108) zum Speicherndes Schaltungsentwurfs (116, 116') aufweist. [7] System gemäß Anspruch5 oder 6, das ferner eine Blockzugriffstabelle (126) zumAufzeichnen (716) eines Zugriffs auf Blöcke des Schaltungsmodells (124)durch das Analysetool (120) aufweist. [8] System gemäß Anspruch7, bei dem der Modellverwalter (122) wirksam ist, um zubestimmen (708), welche Blöcke aus dem Schaltungsmodell (124)entfernt (710) werden sollen, durch Verwenden von Informationender Blockzugriffstabelle (126). [9] System gemäß Anspruch8, bei dem der Modellverwalter (122) eine LRU-Cachespeicherungstechnikmit Informationen der Blockzugriffstabelle (126) verwendet,um zu bestimmen (708), welche Blöcke aus dem Schaltungsmodell(124) entfernt (710) werden sollen. [10] System gemäß Anspruch8 oder 9, bei dem der Modellverwalter (122) eine LFU-Cachespeicherungstechnikmit Informationen der Blockzugriffstabelle (126) verwendet,um zu bestimmen (708), welche Blöcke aus dem Schaltungsmodell(124) entfernt werden sollen. [11] System (100) zum Analysieren eines Schaltungsentwurfs(116, 116'),das folgende Merkmale aufweist: eine Einrichtung zum Erfassenvon Zugriff auf zumindest einen Block des Schaltungsentwurfs (116, 116'); eineEinrichtung zum Bestimmen, ob das Laden des einen Blocks in einSchaltungsmodell, das innerhalb eines Computerspeichers gespeichertist, eine vordefinierte Maximalverwendung des Computerspeichers überschreiten würde, wennder eine Block momentan nicht innerhalb des Schaltungsmodells vorliegt; eineEinrichtung zum Entladen von einem oder mehreren Blöcken ausdem Schaltungsmodell und Laden des einen Blocks in das Schaltungsmodell,wenn das Laden des einen Blocks in den Computerspeicher die vordefinierteMaximalverwendung überschreiten würde; und eineEinrichtung zum Laden des einen Blocks in das Schaltungsmodell,wenn das Laden des einen Blocks in das Computermodell die vordefinierteMaximalverwendung nicht überschreitenwürde. [12] System gemäß Anspruch11, das ferner eine Einrichtung zum Aufzeichnen des Blockzugriffsaufweist. [13] System gemäß Anspruch12, bei dem die Einrichtung zum Aufzeichnen den Blockzugriff ineiner Blockzugriffstabelle aufzeichnet. [14] System gemäß Anspruch13, das ferner eine Einrichtung zum Verwenden der Blockzugriffstabelle aufweist,um zu bestimmen, welche Blöckeaus dem Schaltungsmodell entladen werden sollen. [15] System gemäß Anspruch14, bei dem die Einrichtung zum Verwenden ferner eine Einrichtung zumVerwenden einer LRU-Cachespeicherungstechnik aufweist, um zu bestimmen,welche Blöckeaus dem Schaltungsmodell entladen werden sollen. [16] System gemäß Anspruch14 oder 15, bei dem die Einrichtung zum Verwenden ferner eine Einrichtungzum Verwenden einer LFU-Cachespeicherungstechnik aufweist, um zubestimmen, welche Blöckeaus dem Schaltungsmodell entladen werden sollen. [17] Softwareprodukt, das Anweisungen aufweist, die aufeinem computerlesbaren Medium gespeichert sind, wobei die Anweisungen,wenn sie durch einen Computer ausgeführt werden, Schritte zum Analysiereneines Schaltungsentwurfs mit reduzierter Speicherverwendung ausführen, dasfolgende Merkmale aufweist: Anweisungen zum Erfassen einesZugriffs auf zumindest einen Block des Schaltungsentwurfs; Anweisungenzum Aufzeichnen des Zugriffs, wenn der eine Block in ein Schaltungsmodelldes Computerspeichers geladen ist; Anweisungen zum Bestimmen,ob das Laden des einen Blocks in das Schaltungsmodell eine vorbestimmteMaximalverwendung des Computerspeichers überschreiten würde, wennder eine Block nicht in das Schaltungsmodell geladen ist; Anweisungenzum Entladen von einem oder mehreren Blöcken aus dem Schaltungsmodellund Laden des einen Blocks in das Schaltungsmodell, wenn das Ladendes einen Blocks in das Schaltungsmodell die vordefinierte Maximalverwendung überschreiten würde; und Anweisungenzum Laden des einen Blocks in das Schaltungsmodell, wenn das Ladendes einen Blocks in das Schaltungsmodell die vordefinierte Maximalverwendungnicht überschreitenwürde. [18] Softwareprodukt gemäß Anspruch 17, das ferner Anweisungenzum Aufzeichnen des Zugriffs in einer Blockzugriffstabelle aufweist. [19] Softwareprodukt gemäß Anspruch 18, das ferner Anweisungenzum Verwenden der Blockzugriffstabelle auf weist, um zu bestimmen,welche Blöckeentladen werden sollen. [20] Softwareprodukt gemäß Anspruch 19, das ferner Anweisungenzum Verwenden einer LRU-Cachespeicherungstechnik aufweist, um zubestimmen, welche Blöckeentladen werden sollen. [21] Softwareprodukt gemäß Anspruch 19 oder 20, dasferner Anweisungen zum Verwenden einer LFU-Cachespeicherungstechnikaufweist, um zu bestimmen, welche Blöcke entladen werden sollen. [22] Softwareprodukt gemäß einem der Ansprüche 17 bis21, das ferner Anweisungen zum Einstellen der vordefinierten Maximalverwendungaufweist.
类似技术:
公开号 | 公开日 | 专利标题 US8484577B2|2013-07-09|Window grouping CN102782683B|2013-08-21|用于数据库服务器的缓冲池扩展 US8356154B2|2013-01-15|Storage system, data relocation method thereof, and recording medium that records data relocation program US6378123B1|2002-04-23|Method of handling macro components in circuit design synthesis JP3230677B1|2001-11-19|自動集計方法、自動集計装置および記録媒体 US5680621A|1997-10-21|System and method for domained incremental changes storage and retrieval Kimelfeld et al.2013|Probabilistic XML: Models and complexity US7571383B2|2009-08-04|Document data retrieval and reporting US9563538B2|2017-02-07|Code path tracking Prasser et al.2015|Putting statistical disclosure control into practice: The ARX data anonymization tool Singh et al.1995|Power conscious CAD tools and methodologies: A perspective US8793672B2|2014-07-29|Optimizing program by reusing execution result of subclass test function US9582199B2|2017-02-28|Method and an apparatus for analyzing data to facilitate data allocation in a storage device US9355152B2|2016-05-31|Non-exclusionary search within in-memory databases US7886028B2|2011-02-08|Method and system for system migration US7971175B2|2011-06-28|Method and system for implementing cached parameterized cells US7461233B2|2008-12-02|Method for identifying data characteristics for flash memory Jia et al.2015|Enhancing reuse of constraint solutions to improve symbolic execution TWI483109B|2015-05-01|半導體儲存裝置 US9940229B2|2018-04-10|Technologies for persistent memory programming EP3572963A1|2019-11-27|Databankzugangssteuerungsrichtliniendurchsetzung mittels reverse queries KR101376937B1|2014-03-20|Flash component query system, flash component query method and computer readable storage medium US8195439B1|2012-06-05|Real-time adaptive circuit simulation CN101593184B|2013-05-15|自适应地定位动态网页元素的系统和方法 US5726903A|1998-03-10|Method and apparatus for resolving conflicts between cell substitution recommendations provided by a drive strength adjust tool
同族专利:
公开号 | 公开日 US20050050484A1|2005-03-03| US7062727B2|2006-06-13|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题
法律状态:
2005-04-07| OP8| Request for examination as to paragraph 44 patent law| 2006-03-09| 8130| Withdrawal|
优先权:
[返回顶部]
申请号 | 申请日 | 专利标题 相关专利
Sulfonates, polymers, resist compositions and patterning process
Washing machine
Washing machine
Device for fixture finishing and tension adjusting of membrane
Structure for Equipping Band in a Plane Cathode Ray Tube
Process for preparation of 7 alpha-carboxyl 9, 11-epoxy steroids and intermediates useful therein an
国家/地区
|